import axios from 'axios';
import { message } from 'antd';

import { url } from '@/setting';

axios.interceptors.request.use(
  config => {
    if (config.method == 'post') {
      config.headers['Content-Type'] = 'application/json';
      config.url = url + config.url;
    } else if (config.method == 'upload') {
      config.url = url + config.url;
      config.method = 'post';
      console.log(config);
    } else {
      config.headers['Content-Type'] = 'application/json';
      config.url = url + config.url;
      if (config.data) {
        const keys = Object.keys(config.data);
        keys.map((v, i) => {
          if (i === 0) {
            config.url = config.url + '?' + v + '=' + config.data[v];
          } else {
            config.url = config.url + '&' + v + '=' + config.data[v];
          }
        });
      }
    }
    return config;
  },
  function (error) {
    console.log(error);
    return Promise.reject(error);
  },
);

axios.interceptors.response.use(
  response => {
    if (!response.data.code === 200) {
      message.error(response.data.message);
      // loading.close();
      return Promise.reject(response.data);
    }
    // if (response.data.data && response.data.data.code) {
    //   if (!response.data.data.success) {
    //     message.error(response.data.data.message);
    //     // loading.close();
    //     return Promise.reject(response.data.data);
    //   }
    // }
    // loading.close();
    return Promise.resolve(response.data);
  },
  function (error) {
    console.log(error);
    if (!error.respones) {
      message.error('系统异常,请稍后再试');
      return Promise.reject(error);
    }
    if (error.response.status === 401) {
      message.error('您的登陆信息已过期');
      return Promise.reject(error);
    }
    message.error(error.message);
    return Promise.reject(error);
  },
);

function post(options) {
  return axios({ ...options, method: 'post' });
}

function get(options) {
  return axios({ ...options, method: 'get' });
}

export default {
  post: post,
  get: get,
};